Robot

ABSTRACT

It is constructed so as to detect a joint movement position of a robot arm by a position detector and a joint movement speed is calculated from change amounts of the joint movement position and elapsed time and is compared with an allowable movement speed and unlocking and locking of a brake are controlled so that the joint movement speed of an arm at the time of brake unlocking becomes within a constant value even when a shape, an attitude and a load condition of the robot arm vary. Therefore, movement work of the arm by the brake unlocking can be performed alone and a robot with high safety can be obtained.

TECHNICAL FIELD

[0001] This invention relates to an improvement in a control apparatusof a robot for shifting a servo system to a control stop state andunlocking a brake of a robot arm.

BACKGROUND ART

[0002] A robot has built a firm position as an apparatus for conveyanceor assembly for savings in labor and person, and has been frequentlyused in the field of manufacturing industries such as an automobileindustry, an electrical appliance industry or a semiconductor industry.Particularly, a technique of brake unlocking is effective in reducingpacking volume by moving an arm of a robot to an attitude at the time ofconveyance, and also is effective in a return operation of the case thatcontrol became impossible by movement beyond a stroke, and is a basictechnique of the robot.

[0003]FIG. 16 is a block diagram of a conventional industrial robotcontrol apparatus for unlocking a brake and being shown inJP-A-11-179691, and FIG. 17 is a flowchart of brake control, and FIG. 18is a state diagram showing a brake action.

[0004] A configuration will be described below. In the drawings, numeral1 is a robot body which has a set of a motor 11, a position detector 12and a brake 13 per one joint. Numeral 2 is a control apparatus whichdrives and controls the robot body 1 by an action program, and has acentral processing unit 21, a servo control part 23, a servo amplifierpart 24, a brake control part 25 and a brake driving part 26. Numeral 3is a manual operation apparatus and an operator gives a commandnecessary for robot control.

[0005] The central processing unit 21 in the control apparatus 2 is apart for generating commands of position control or various functions ofthe robot body 1 based on a control program. The servo control part 23,the servo amplifier part 24 and the motor 11 form a servo controlsystem. At the time of control of a servo system, a command aboutmovement or stop is given to the servo control part 23 and its commandis further passed to the servo amplifier part 24 and turning force fordriving a robot arm (not shown) is finally generated in the motor 11 andwhen a movement command is not given, the turning force balances withits own weight of the robot arm to make a stop. Also, when the movementcommand is given, it is constructed so that turning force larger thanforce for offsetting its own weight of the robot arm is generated andthe robot arm moves.

[0006] Also, the position detector 12 is mounted in the motor 11. Theposition detector 12 recognizes a servo control position of the robotarm, and is actually constructed so that a rotational angle of the motor11 is detected and an output signal of the rotational angle is fed backto the servo control part 23 and the servo amplifier part 24 and as aresult of that, the robot arm always maintains a position command valuefrom the operation part 3. The brake 13 is mounted integrally with ashaft of the motor 11 or between the shaft and the robot arm. Numeral 27is a brake unlocking time setting part, and numeral 28 is a brakelocking time setting part. The brake unlocking time setting part 27 andthe brake locking time setting part 28 are constructed so as to beallocated to memory (not shown) of the central processing unit 21 asparameters of the robot control apparatus and be able to be changed fromthe manual operation apparatus 3 etc. by an operator. The brake drivingpart 26 performs driving so as to unlock or lock the brake 13 actuallyby an output signal from the brake control part 25. It is constructed sothat an unlocking command of the brake 13 is generated by pushing anunlocking operation switch (not shown) present in the manual operationapparatus 3.

[0007] Next, an action will be described. First, the central processingunit 21 decides a working state of an unlocking operation switch of themanual operation apparatus 3 in step S71. When the unlocking operationswitch of a brake unlocking command is “ON”, the action proceeds to stepS72 and the central processing unit 21 performs control stop processingof a servo system. That is, a locking action of the brake 13 isperformed and a signal output to the servo control part 23, the servoamplifier part 24 and the motor 11 is stopped and a robot arm stops bythe brake 13. Next, in step S73, the brake control part 25 readsunlocking time data from the brake unlocking time setting part 27, andoutputs a signal to the brake driving part 26 so as to unlock the brake13 for only time according to the unlocking time data. After a lapse ofthe unlocking time, it proceeds to step S74, and the brake control part25 reads locking time data from the brake locking time setting part 28,and outputs a signal to the brake driving part 26 so as to lock thebrake 13 for only time according to the locking time data. After a lapseof the locking time, it returns to decision on the working state of theunlocking operation switch of step S71. As a result of this, as shown inFIG. 18, while an operator continues to push the unlocking operationswitch of the manual operation apparatus 3, unlocking and lockingactions of the brake 13 are performed based on the data for therespective time.

[0008] Also, when the unlocking operation switch is not pushed (OFF), itproceeds to step S75, and processing for deciding whether or not controlof the servo system is being exercised is performed and thereafter, itreturns to step S71. As a result of that, during the control of theservo system, an unlocked state of the brake 13 continues always. Also,in the case of a state other than in the servo control action in stepS75, processing for locking the brake 13 in step S77 is performed andthereafter, it returns to decision on the working state of the unlockingoperation switch of step S71.

[0009] As described above, the conventional robot presets brakeunlocking time and locking time and repeats a sequence of locking andunlocking of the brake 13 based on this setting time, so that a movementspeed of an arm at the time of brake unlocking greatly depends onweight, an attitude and a load of the arm.

[0010] For example, when the center of gravity in which the weight orthe load, etc. of the arm are combined is located in a substantiallyhorizontal position viewed from the center of rotation of a joint inwhich a brake attempts to be opened, the moment about the joint becomesmaximum and as a result of that, rotational acceleration also becomesmaximum and the movement speed of the arm increases suddenly at the timeof unlocking the brake.

[0011] Also, when the center of gravity is located in a substantiallyvertical position viewed from the center of rotation of the joint, themoment about the joint becomes close to zero and there may be a state inwhich the arm does not start to move unless an operator applies forcedue to the presence of friction of a joint part even at the time ofunlocking the brake.

[0012] In the conventional robot thus, the arm movement speed in thecase of unlocking the brake varies suddenly due to weight, an attitudeand a load condition, etc. of the arm, so that it was necessary toadjust time setting of locking and unlocking of the brake while theoperator monitors movement of the arm

[0013] Also, in a state in which the arm does not move in the case ofunlocking the brake, an operation in which the operator applies force tothe arm by hand, etc. was necessary and further it was necessary toperform an operation of the unlocking operation switch and it wasdifficult to do work alone.

DISCLOSURE OF THE INVENTION

[0014] This invention is implemented to solve the problems describedabove, and an object of the invention is to obtain a robot capable ofsuppressing high-speed movement of an arm by controlling a brake so thata movement speed of the arm at the time of brake unlocking or a movementamount of the arm within a control program execution cycle becomeswithin a constant value even when a shape, an attitude and a loadcondition of a robot arm vary.

[0015] Further, an object of this invention is to obtain a robot capableof suppressing high-speed movement of an arm by controlling a brake sothat a movement speed of the arm at the time of brake unlocking or amovement amount of the arm within a control program execution cyclebecomes between an upper limit value and a lower limit value even when ashape, an attitude and a load condition of a robot arm vary.

[0016] Further, an object of this invention is to obtain a robot capableof moving an arm even in the case that it is lacking in moment about ajoint due to an attitude of a robot arm like a multi-joint robot and thearm does not move or the case that a movement shaft of an orthogonaltype robot is placed substantially horizontally and an arm does not movedue to gravity even when a brake is unlocked, and an object of thisinvention is to obtain a robot capable of suppressing high-speedmovement of an arm by controlling a brake when a movement speed or amovement amount of the arm within a control program execution cyclereaches a constant value even after movement is started by its ownweight of the arm and so on.

[0017] Further, an object of this invention is to obtain a robot capableof suppressing high-speed movement of an arm by storing brake unlockingtime and brake locking time according to an attitude and a loadcondition of a robot arm and reading the optimum brake unlocking timeand brake locking time out of the attitude and the load condition andcontrolling a brake based on their time.

[0018] Also, an object is to obtain a robot capable of controlling amovement speed of a work point of a robot top region or a movementamount of the work point within a control program execution cycle to apredetermined value.

[0019] A robot according to this invention is constructed so that in thecase of shifting a servo system to a control stop state and unlocking abrake of a robot arm, a position of the robot arm is detected by aposition detector and an actual movement speed of the arm is calculatedfrom change amounts of a movement position and elapsed time and thisactual movement speed is compared with an allowable movement speed and alocking signal or an unlocking signal of the brake is sent to a drivingapparatus and as a result of that, the brake is unlocked or locked andthe movement speed of the robot arm is controlled within a predeterminedvalue.

[0020] Further, a robot according to this invention is constructed sothat an upper limit value and a lower limit value of a movement speed ofan arm are set and when an actual movement speed exceeds the upper limitvalue, a brake is locked and when the actual movement speed falls belowthe lower limit value, the brake is unlocked and the movement speed ofthe robot arm is controlled between the upper limit value and the lowerlimit value.

[0021] Also, a robot according to this invention is constructed so thatin the case of unlocking a brake, a movement position of a robot arm isdetected by a position detector and a movement amount of the arm movingduring an execution cycle of a brake unlocking program is obtained andthis movement amount is compared with a set movement amount and lockingand unlocking of the brake are controlled.

[0022] Also, a robot according to this invention is constructed so thata motor driving auxiliary switch is provided and when the switch is“ON”, a brake is unlocked and a motor is rotated movement speed of anarm is reached and thereafter a movement speed of a robot arm iscontrolled within a predetermined value.

[0023] This invention is constructed so that brake unlocking time andbrake locking time according to a shape, an attitude and a loadcondition of a robot arm are stored previously and the optimum brakeunlocking time and brake locking time are read out of the attitude andthe load condition and a brake is controlled based on their time.

[0024] Also, it is constructed so that from a distance to a robot regionset and an actual movement speed of an arm, a movement speed of therobot region is calculated and by a result of comparing the movementspeed with an allowable movement speed, a brake is unlocked or lockedand the movement speed of a robot arm is controlled.

[0025] A robot according to this invention is constructed as describedabove, and even when a load condition or an attitude of a robot varies,a movement speed of an arm at the time of brake unlocking can becontrolled accurately and a robot with high safety can be obtained.Further, when the arm does not move even in the case of unlocking abrake depending on an attitude, it is constructed so as to move the armby the running torque of the extent to which the arm moves, so that ithas an effect capable of obtaining a robot capable of brake unlockingoperation alone.

BRIEF DESCRIPTION OF THE DRAWINGS

[0026]FIG. 1 is an explanatory diagram showing a configuration of ageneral robot.

[0027]FIG. 2 is a block diagram showing an embodiment of this invention.

[0028]FIG. 3 is a flowchart showing brake unlocking processing in acontrol program.

[0029]FIG. 4 is a flowchart of a subprogram showing brake unlockingprocessing of a first embodiment.

[0030]FIG. 5 is an action explanatory diagram of the first embodiment.

[0031]FIG. 6 is a flowchart of a subprogram showing brake unlockingprocessing of a second embodiment.

[0032]FIG. 7 is an action explanatory diagram of the second embodiment.

[0033]FIG. 8 is a flowchart of a subprogram showing brake unlockingprocessing of a third embodiment.

[0034]FIG. 9 is a flowchart of a subprogram showing brake unlockingprocessing of a fourth embodiment.

[0035]FIG. 10 is a flowchart of a subprogram showing brake unlockingprocessing of a fifth embodiment.

[0036]FIG. 11 is an explanatory diagram explaining a distance L to thearm top or a load in a robot of the fifth embodiment.

[0037]FIG. 12 is an explanatory diagram explaining the distance L to thearm top or the load in the robot of the fifth embodiment.

[0038]FIG. 13 is a flowchart of a control program for brake unlockingabout a sixth embodiment.

[0039]FIG. 14 is an outline diagram explaining a state of a joint partof a multi-joint robot.

[0040]FIG. 15 is a table of locking time and unlocking time stored in astorage part 22 of the sixth embodiment.

[0041]FIG. 16 is a block diagram of a conventional industrial robotcontrol apparatus for unlocking a brake.

[0042]FIG. 17 is a flowchart of a program showing conventional brakeunlocking processing.

[0043]FIG. 18 is a state diagram showing a conventional brake action.

BEST MODE FOR CARRYING OUT THE INVENTION

[0044] First Embodiment

[0045]FIG. 1 is a diagram showing a configuration of a general robot,and FIG. 2 is a block diagram of a robot which is a first embodiment ofthis invention. FIG. 3 shows a flowchart showing brake unlockingprocessing in a control program, and FIG. 4 shows a flowchart of asubprogram for performing brake locking and unlocking processing. FIG. 5is an action explanatory diagram showing a relation among a state of abrake unlocking switch, a brake signal and an arm movement speed.

[0046] Referring first to a configuration, numeral 1 is a robot body,and numeral 2 is a control apparatus for performing various control of arobot, and numeral 3 is a manual operation apparatus for performing anoperation of the robot.

[0047] Numeral 11 is a motor for driving an arm or a post of the robot,and numeral 12 is a position detector which is provided in a shaft ofthe motor 11 and detects an attitude position of the arm. Numeral 13 isa brake which is provided in the shaft of the motor 11 and preventsmovement by gravity of the arm when a power source of the robot isturned off. The motor 11, the position detector 12 and the brake 13described above are the same as those of a conventional example.

[0048] Numeral 21 is a central processing unit for analyzing andprocessing an action program of the robot to perform various processingincluding attitude control of an arm etc. of the robot body 1 or brakeunlocking control processing. It is constructed so that the centralprocessing unit 21 repeats a series of position control or input/outputprocessing called a control program on the order of several tens oftimes per one second, at intervals of several tens of milliseconds interms of a cycle based on a control program within a storage unit 22.When the central processing unit 21 detects “ON” of an unlockingoperation switch for unlocking the brake 13 during execution of thecontrol program, it is constructed so that data of a brake flag Fbwithin the storage unit 22 is set to “1” and further previous positiondata Xp is set to “0” and on the other hand, when a brake unlockingcommand is eliminated, it is constructed so that data of the brake flagFb is set to “0”. Then, when the brake flag Fb is “1”, it is constructedso as to start processing of a subprogram of brake unlocking processingshown in FIG. 3.

[0049] Numeral 22 is a storage unit which stores action programs,various parameters about control of the robot, control programs forperforming processing within the control apparatus 2 and thesubprograms, and parameters for performing brake unlocking processing ofthis invention. As the parameters for performing the brake unlockingprocessing, present position data Xc and present time data Tc indicatingthe present position and time of an arm etc., previous position data Xpand previous time. data Tp indicating the position and time in the caseof performing the previous processing, and allowable movement speed dataVs and actual movement speed data Va of an arm etc. are allocated.

[0050] Numeral 23 is a servo control part for generating a positioncontrol signal to the robot by a movement command from the centralprocessing unit 21, and numeral 24 is a servo amplifier part for drivingthe motor 11 by a control signal from the servo control part 23. Numeral25 is a brake control part for generating an unlocking control signal ofthe brake, and numeral 26 is a brake driving part for supplying drivingenergy to the brake 13 by a control signal from the brake control part25.

[0051] Incidentally, one set of each of the motor 11, the positiondetector 12, the brake 13, the servo amplifier part 24 and the brakedriving part 26 are described for the sake of simplicity of descriptionin FIG. 2, but actually, it goes without saying that plural sets of themaccording to the number of driving parts held by the robot body 1 can beprovided.

[0052] Numeral 3 is a manual operation apparatus which is provided withkey switches or the like for inputting action programs and variousparameters or commanding the brake unlocking processing in thisinvention and a display unit for performing the present position displayand so on. Incidentally, while being not illustrated herein, functionsof input or display of the manual operation apparatus 3 may beincorporated into the control apparatus 2 to be provided.

[0053] Next, an action will be described using FIGS. 3 to 5.

[0054] Before a brake unlocking command, an operator operates the keyswitches of the manual operation apparatus 3 and is caused to storeallowable movement speed data Vs of an arm in the storage unit 22.

[0055] First, when the central processing unit 21 detects that anunlocking operation switch is “ON” in step S31 of a control program ofFIG. 3, the action proceeds to processing of step S32. In step S32, anoutput signal from the servo control part 23 to the servo amplifier part24 is stopped to prohibit an output to the motor 11. However, a positiondetection action of the position detector 12 is performed and a positionof an arm is stored in the storage part 22 as the present position dataXc etc. via the servo control part 23.

[0056] Next, it proceeds to step S33, but a brake flag Fb has been setto “0” in step S36 when the unlocking operation switch was in an “OFF”state previously, so that it proceeds to processing of step S34 for onlythe first time. In step S34, the central processing unit 21 sets data ofthe brake flag Fb to “1” and sets the previous position data Xp to “0”.Then, it proceeds to step S35 and a subprogram for brake unlocking ofFIG. 4 is called. Thus, for a period during which the unlockingoperation switch is “ON”, the subprogram of FIG. 4 is called to performbrake unlocking processing anytime.

[0057] Incidentally, when the central processing unit 21 detects that astate of the unlocking operation switch is “OFF” in step S31, itproceeds to step S36, and the brake flag Fb is set to “0” and an outputsignal from the servo control part 23 to the servo amplifier part 24 issent and the brake 11 is unlocked and a normal servo system is shiftedto a control state and then it exits from the brake unlocking processingprogram of FIG. 3.

[0058] Next, processing at the time when the subprogram of brakeunlocking shown in FIG. 4 is called will be described.

[0059] In step S41, it is first checked whether or not the previousposition data Xp is “0” and when it is “0”, in other words, in firstprocessing in which the unlocking operation switch changes from “OFF” to“ON”, it proceeds to step S44, and the previous position data Xp isrewritten to the present position data Xc and then the previous timedata Tp is rewritten to to the present time data Tc. Then, it proceedsto step S46 and brake unlocking processing is performed. The brakeunlocking processing is performed by sending its command from thecentral processing unit 21 to the brake driving part 26 through thebrake control part 25 and finally supplying driving energy for unlockingthe brake 13 from the brake driving part 26. When the brake unlockingprocessing of step S46 is completed, it exits from the subprogram once.

[0060] The case that a subprogram of the next brake unlocking processingis processed from among control programs will be described. When “ON” ofthe unlocking operation switch is continued in step S31, it proceeds tostep S32 and control stop processing of a servo system is performed. Inthe next step S33, the brake flag Fb has been set to “1” in step S34 ofthe brake unlocking processing of the control program executedpreviously, so that it proceeds to step S35 subsequent to the second anda subprogram of brake unlocking processing of FIG. 4 is called.

[0061] In step S41 of a subprogram call subsequent to the second, thepresent position data Xc at the time of processing of previous time hasbeen substituted for the previous position data Xp, so that the previousposition data Xp is not “0” and it proceeds to step S42 In step S42, themovement amount ΔX and elapsed time ΔT from a point in time ofprocessing of previous time to a point in time of processing of thistime and actual movement speed data Va are obtained from the followingexpressions.

ΔX=Xc−Xp

ΔT=Tc−Tp

Va=ΔX/ΔT

[0062] After the above-mentioned calculation, in order to calculate themovement amount and speed of the case that the next subprogram iscalled, the following and the present data are substituted.

Xp=Xc

Tp=Tc

[0063] Next, it proceeds to step S43, and control is performed so thatwhen actual movement speed data Va is larger than allowable movementspeed data Vs, it proceeds to step S45 and the brake is locked and onthe other hand, when the actual movement speed data Va is smaller thanthe allowable movement speed data Vs, it proceeds to step S46 and thebrake 13 is unlocked.

[0064] The processing described above is performed as shown in theaction explanatory diagram of FIG. 5. First, when the unlockingoperation switch becomes “ON”, the brake 13 is unlocked until movementis started by arm's own weight and the allowable movement speed data Vsis reached.

[0065] Incidentally, in the drawing, a movement speed of an arm isapproximated by a straight line to be shown, but a ratio at which thearm movement speed at the time of unlocking the brake 13 increaseschanges by an attitude of the arm and also a ratio at which the brake 13is locked and the movement speed decreases is determined by brakingforce of the brake 13 and inertia of the arm and so on.

[0066] After reaching the allowable movement speed data Vs, locking andunlocking processing of the brake 13 is repeatedly performed in thevicinity of the allowable movement speed data Vs. When the unlockingoperation switch becomes “OFF”, it returns to a control state of a servosystem at once and the brake 11 is unlocked and servo position controlis performed so that the arm stops by the present position data Xc.

[0067] As described above, in the case of performing the brake unlockingprocessing, the movement speed of the arm is limited to the allowablemovement speed and the arm does not move at high speed, so that a robotwith high safety can be obtained.

[0068] Second Embodiment

[0069] A second embodiment is constructed so that an actual movementspeed is compared with an upper limit allowable movement speed and alower limit allowable movement speed and in the case of exceeding theupper limit value, brake locking processing is performed and in the caseof falling below the lower limit value, brake unlocking processing isperformed and in the case of the middle of the upper limit value and thelower limit value, the previous processing is continued, and theconfiguration is identical to that of the first embodiment.

[0070] A control program in the second embodiment has a flowchartidentical to the flowchart of FIG. 3 in the first embodiment, and in aflowchart of a subprogram, as shown in FIG. 6, a portion of processingdiffers as compared with the first embodiment. Incidentally, the samestep numbers are used in steps which are processing identical to that ofFIG. 4 of the first embodiment. FIG. 7 is an action explanatory diagramshowing a relation among a state of a brake unlocking switch, a brakesignal and an arm movement speed in the second embodiment.

[0071] A portion different from the first embodiment will be describedbelow using a flowchart. Incidentally, in the case of starting of brakeunlocking processing, it is assumed that an operator previously inputsupper limit allowable movement speed data V_(SH) and lower limitallowable movement speed data V_(SL) from a manual operation apparatus 3to a storage part 22.

[0072] After obtaining actual movement speed data Va in step S42, theflowchart proceeds to step S51 and the actual movement speed data Va iscompared with the lower limit allowable movement speed data V_(SL) andwhen the actual movement speed data Va is smaller, it proceeds to stepS46 and brake unlocking processing is performed. Also, when the actualmovement speed data Va is larger, it proceeds to step S52. In step S52,the actual movement speed data Va is compared with the limit allowablemovement speed data V_(SH) and when the actual movement speed data Va islarger, it proceeds to step S45 and brake locking processing isperformed. Also, when the actual movement speed data Va is smaller, itexits from this subprogram, so that the brake locking processing of stepS45 or the brake unlocking processing of step S46 performed previoustime is continued.

[0073] In the second embodiment, as compared with the first embodiment,a processing interval between brake locking and brake unlockingincreases as shown in FIG. 7 and frequency of chattering of locking andunlocking of the brake 13 can be reduced.

[0074] Third Embodiment

[0075] A third embodiment is constructed so that in the case of shiftinga servo system to a control stop state and unlocking a brake of a robotarm, a movement position of the robot arm is detected by a positiondetector and an arm movement amount moving during an execution cycle ofa brake unlocking program is obtained and this arm movement amount iscompared with a set movement amount and locking and unlocking of thebrake are controlled, and the configuration is identical to that of thefirst embodiment.

[0076] A control program in the third embodiment has a flowchartidentical to the flowchart of FIG. 3 in the first embodiment, and in aflowchart of a subprogram, as shown in FIG. 8, a portion of processingdiffers as compared with the first embodiment. Incidentally, the samestep numbers are used in steps which are processing identical to that ofFIG. 4 of the first embodiment.

[0077] A different portion in a subprogram for brake unlocking will bedescribed below.

[0078] In a call of the first subprogram in which an unlocking operationswitch is switched from “OFF” to “ON”, previous position data Xp is setto “0”, so that the flowchart proceeds from step S41 to step S55. Instep S55, present position data Xc is substituted for the previousposition data Xp and it proceeds to step S46 and brake unlockingprocessing is performed and it exits from the subprogram.

[0079] In a call of a subprogram subsequent to the second, the presentposition data Xc at the time of the previous processing has beensubstituted as the previous position data Xp in step S55, so that adecision of step S41 proceeds to step S53. In step S53, an actualmovement amount ΔX is obtained from a difference between the presentposition data Xc and the previous position data Xp. Then, in step S54,the actual movement amount ΔX is compared with a set movement amount Xsand when the actual movement amount ΔX is larger, brake lockingprocessing of step S45 is performed and when the actual movement amountΔX is smaller, brake unlocking processing of step S46 is performed.

[0080] As described above, when the unlocking operation switch is “ON”,a brake 13 is unlocked until an arm starts movement by its own weightand the actual movement amount ΔX per execution processing of a controlprogram reaches the set movement amount Xs. Thereafter, locking andunlocking processing of the brake 13 is performed based on the setmovement amount Xs. When the unlocking operation switch becomes “OFF”,it returns to a control state of a servo system at once and the brake 11is unlocked and servo position control is performed so that the armstops by the present position data Xc.

[0081] In the third embodiment, the fact that a control program isexecuted on the order of several tens of times per one second, atintervals of several tens of milliseconds in terms of a cycle andelapsed time ΔT becomes a substantially constant time interval is used,so that calculation processing of the elapsed time ΔT by a centralprocessing unit 21 can be eliminated.

[0082] Also, as well as setting the set movement amount Xs directly as aparameter, it can also be constructed so that by inputting allowablemovement speed data Vs, the set movement amount Xs is obtained by thecentral processing unit 21 and is stored in a storage part 22. Further,it can also be constructed so that the number of pulses which are aposition signal sent from a position detector 12 to a servo control part23 is used instead of the set movement amount Xs.

[0083] Fourth Embodiment

[0084] A fourth embodiment is constructed so that in the case that thecenter of gravity in which an attitude or a load, etc. of an arm of arobot body 1 are combined is located in a substantially verticalposition viewed from a joint like a multi-joint robot and moment aboutthe joint is close to zero, or the case that a movement shaft of anorthogonal type robot is placed substantially horizontally and an armdoes not move, there is means for avoiding a phenomenon in which the armdoes not start to move unless an operator applies force even at the timeof unlocking a brake 13 and in the case that a motor auxiliary rotaryswitch is “ON”, rotational movement of a motor 11 is performed untilactual movement speed data Va of the arm reaches allowable movementspeed data Vs.

[0085] A control program in the fourth embodiment has a flowchartidentical to the flowchart of FIG. 3 in the first embodiment, and in aflowchart of a subprogram, as shown in FIG. 9, a portion of processingdiffers as compared with the first embodiment. Incidentally, the samestep numbers are used in steps which are processing identical to that ofthe first embodiment.

[0086] A different portion in a subprogram for brake unlocking will bedescribed below.

[0087] In a call of a subprogram subsequent to the second, a value otherthan “0” has been substituted for previous position data Xp, so that adecision of step 41 proceeds to step S42. In step S42, the movementamount ΔX and elapsed time ΔT from a point in time of processing ofprevious time to a point in time of processing of this time and actualmovement speed data Va are obtained from the following expressions.

ΔX=Xc−Xp

ΔT=Tc−Tp

Va=ΔX/ΔT

[0088] After the above-mentioned calculation, in order to calculate themovement amount and speed of the case that the next subprogram iscalled, the following and the present data are substituted.

Xp=Xc

Tp=Tc

[0089] Next, it proceeds to step S43 and when the actual movement speeddata Va is larger than the allowable movement speed data Vs, it proceedsto step S45 and brake locking processing is performed and thereafter, itexits from the subprogram. When the actual movement speed data Va issmaller than the allowable movement speed data Vs, it proceeds to stepS56. When the motor auxiliary rotary switch is “ON”, it proceeds to stepS57 and after brake unlocking processing, constant torque of the extentto which an arm moves is applied to the motor 11 and thereafter, itexits from the subprogram. Also, when the motor auxiliary rotary switchis “OFF” in step S56, it proceeds to step S46 and brake unlockingprocessing is performed and it exits from the subprogram.

[0090] As described above, when the motor auxiliary rotary switch is“ON”, an auxiliary movement action of the arm by the motor 11 isperformed until the arm starts self-propelling by its own weight andreaches the allowable movement speed data Vs. Also, even when the motorauxiliary rotary switch is “OFF” and a state in which the arm hasstopped continues, an operator can also apply force to move the armfreely.

[0091] Incidentally, when torque for auxiliary movement applied to themotor 11 is constructed so as to be controlled by constant torque of theextent to which the arm starts movement, the robot body 1 is not damagedmechanically even in case that an operator rotates the motor 11 to thestroke end due to wrong operation.

[0092] Fifth Embodiment

[0093] A fifth embodiment detects a movement position of a robot arm bya position detector and calculates an actual movement speed of the armfrom change amounts of the movement position and elapsed time in amanner similar to the first embodiment. However, the fifth embodimentdiffers in that a movement speed of a work point of the arm top isobtained from the actual movement speed and a distance to the work pointof the arm top and is compared with an allowable movement speed and whenthe movement speed of the work point of the arm top is larger, brakelocking processing is performed and when the movement speed is smaller,brake unlocking processing is performed.

[0094] Therefore, a control program in the fifth embodiment has aflowchart identical to the flowchart of FIG. 3 in the first embodiment,and in a flowchart of a subprogram, as shown in FIG. 10, a portion ofprocessing differs as compared with the first embodiment.

[0095]FIGS. 11 and 12 are explanatory diagrams explaining a distance Lfrom a joint part X₁ performing brake unlocking to a work point (shownby point A) of the arm top in a robot body 1. X₁, X₂, X₃ show respectivejoint part coordinate data, and L₁, L₂, L₃ show distances between jointsof a first arm 14, a second arm 15, a wrist shaft 16 or distancesbetween a joint and a work point. θ₁ represents an angle formed by thefirst arm 14 and a horizontal plane, and θ₂, θ₃ represent angles formedbetween the arms of each the joint part. Numeral 17 is a load, andnumeral 18 is a robot post, and W is weight of the load.

[0096] Processing different from the first embodiment will be describedbelow using a flowchart. Incidentally, in the case of starting of brakeunlocking processing, it is assumed that an operator previously inputsallowable movement speed data Vs and a distance L to the top or thecenter of a load from a manual operation apparatus 3 to a storage part22.

[0097] First, in step S41 of a subprogram call of the second of theflowchart shown in FIG. 10, in a manner similar to the first embodiment,the present position data Xc at the time of processing of previous timehas been substituted for the previous position data Xp, so that theprevious position data Xp is not “0” and it proceeds to step S58. Instep S58, the movement amount ΔX and elapsed time ΔT from a point intime of processing of previous time to a point in time of processing ofthis time, actual movement speed data Va and movement speed data V areobtained from the following expressions.

ΔX=Xc−Xp

ΔT=Tc−Tp

Va=ΔX/ΔT

V=Va×L

[0098] After the above-mentioned calculation, in order to calculate themovement amount and speed of the case that the next subprogram iscalled, the following and the present data are substituted.

Xp=Xc

Tp=Tc

[0099] Next, it proceeds to step S59, and control is performed so thatwhen movement speed data V is larger than allowable movement speed dataVs, it proceeds to step S45 and a brake is locked and on the other hand,when the movement speed data V is smaller than the allowable movementspeed data Vs, it proceeds to step S46 and the brake 13 is unlocked.

[0100] In the above description, the case that the operator inputs thedistance L has been explained, but when it is constructed so that thedistance L is obtained by calculation from the distances L₁, L₂, L₃between the joints and the angles θ₁, θ₂, θ₃ formed between each of thejoints, an input operation of the distance L by the operator can beeliminated.

[0101] Sixth Embodiment

[0102] A sixth embodiment is constructed so that an arm attitude and aload condition of a robot body 1 are associated with locking time andunlocking time of brake unlocking processing and are stored in a storagepart 22 and a brake 13 is controlled according to the stored lockingtime and unlocking time.

[0103]FIG. 13 shows a flowchart of a control program for brake unlockingwhich is the sixth embodiment, and FIG. 14 shows an outline diagramexplaining a state of a joint part of a multi-joint robot, and FIG. 15shows a table of locking time and unlocking time stored in the storagepart 22.

[0104]FIG. 14 shows an outline diagram of the robot body 1 explainingvarious parameters of the sixth embodiment, and numeral 14 is a firstarm, and numeral 15 is a second arm, and numeral 16 is a wrist shaft.Numeral 17 is a load and corresponds to a conveyance product in a robot.Numeral 18 is a post which rotatably supports the first arm 14.

[0105] X₁ represents joint coordinate data controlled by a controlapparatus 2 in the case of a state in which a joint part between thepost 18 and the first arm is shown by an angle θ₁. As a specificcoordinate setting, it may be θ₁=X₁, but it is represented by a relationexpression of θ₁=X₁+α. Incidentally, in α, the stroke end may often bedefined as “0” generally. Similarly, X₂ represents coordinate data inthe case of a state in which a joint part between the first arm 14 andthe second arm 15 is shown by an angle θ₂, and X₃ represents coordinatedata in the case of a state in which a joint part between the second arm15 and the wrist shaft 16 is shown by an angle θ₃.

[0106] In a table of FIG. 15, the coordinate data X₁ of a first jointindicating an attitude of an arm is divided into five segments of A₁ toF₁ and also a rotational position X₂ of a second joint is divided intofour segments of A₂ to E₂ and a rotational position X₃ of a third jointis divided into two segments of A₃ to C₃ and further a load W of theload 17 is divided into three segments of 0, 2, 4 kg, and data of theoptimum unlocking time T_(BRn) and locking time T_(BLn) of a brake isassociated with each the segment. It is constructed so that these dataof the table are associated and stored in the storage part 22 and theunlocking time T_(BRn) and the locking time T_(BLn) of the brake can beretrieved and read out easily by a central processing unit 21 from theposition data X₁, X₂, X₃ of the first joint to the third joint and inputdata of the load W.

[0107] Next, an action will be described using a flowchart of FIG. 13.

[0108] When a brake unlocking program in a control program is called, astate of an unlocking operation switch is decided in step S61 and whenthe state is “OFF”, the action proceeds to step S69, and “−1” is set toset brake locking time T_(BL) and set brake unlocking time T_(BR), andit exits from brake unlocking processing. When the unlocking operationswitch is “ON” in step S61, it proceeds to step S62, and servo outputstop processing for stopping an output from a servo amplifier part 24 toa motor 11 is performed. Next, it proceeds to step S63, and it isdecided whether or not both values of the set brake locking time T_(BL)and the set brake unlocking time T_(BR) are minus. Immediately after theunlocking operation switch is switched from “OFF” to “ON”, both thevalues are minus, so that it proceeds to step S64 and based on thepresent positions X₁, X₂, X₃ of each the joint and the load informationW inputted, set brake locking time T_(BLn) and set brake unlocking timeT_(BRn) of the closest condition are read out and setting is made asfollows.

T_(BL)=T_(BLn)

T_(BR)=T_(BRn)

[0109] Next, it proceeds to step S68 and brake unlocking processing isperformed, and time ΔT taken from the set brake unlocking time T_(BR) tothe next processing is subtracted and it exits from a brake unlockingprocessing program. The brake unlocking processing of step S68 isrepeated until the set brake unlocking time T_(BR) has elapsed. Afterthe set brake unlocking time T_(BR) is minus, namely the brake unlockingprocessing is completed in step S65, it proceeds to step S66 and brakelocking processing of step S67 is repeated until the brake locking timeT_(BL) has elapsed.

[0110] When one cycle of the brake unlocking processing of step S68 andthe brake locking processing of step S67 is completed, it proceeds tostep S64 again and based on the present positions of each the joint andthe load information inputted, new set brake locking time T_(BL) and setbrake unlocking time T_(BR) are read out and the brake unlockingprocessing is repeatedly performed.

[0111] As described above, from the coordinate values of the presentpositions of each the joint of the robot body 1 and the inputted load,the optimum set brake locking time T_(BLn) and set brake unlocking timeT_(BRn) stored in the storage part 22 are called and the brake unlockingprocessing is performed, so that it is unnecessary to do calculationetc. for obtaining the actual rotational speed data Va from the presentposition data Xc, the previous position data Xp, the present time dataTc, the previous time data Tp, etc. as shown in the first embodiment orthe third embodiment, and processing can be simplified.

[0112] Incidentally, in the case of performing unlocking and lockingcontrol of a brake, in each the embodiment described above, techniquesin which a movement speed is compared with an allowable movement speedor a movement amount within a control program execution cycle iscompared with an allowable movement amount and also an upper limit valueand a lower limit value are provided in the allowable movement speed orthe allowable movement amount to make a comparison can also be replacedproperly, or two or more can also be used in combination.

[0113] Industrial Applicability

[0114] As described above, a robot according to this invention issuitable to perform brake unlocking and move an arm to the outside of astroke range or move the arm from the outside to the inside of thestroke range.

1. A robot comprising: a driving apparatus for moving and driving arobot arm, a position detector for detecting a position of the robotarm, a brake apparatus for maintaining a stationary attitude of therobot arm, and an unlocking switch for stopping servo control andunlocking the brake apparatus, characterized in that it is constructedso that when a command from the unlocking switch is given, a movementspeed is calculated based on a position change amount and elapsed timefrom the position detector and also is compared with an allowablemovement speed specified previously and when the movement speed islarger, a brake is locked and when the movement speed is smaller, thebrake is unlocked.
 2. A robot comprising: a driving apparatus for movingand driving a robot arm, a position detector for detecting a position ofthe robot arm, a brake apparatus for maintaining a stationary attitudeof the robot arm, and an unlocking switch for stopping servo control andunlocking the brake apparatus, characterized in that it is constructedso that when a command from the unlocking switch is given, a movementamount within a control program execution cycle is obtained from achange amount of the position detector and is compared with an allowablemovement amount specified previously and when the movement amount islarger, a brake is locked and when the movement amount is smaller, thebrake is unlocked.
 3. A robot comprising: a driving apparatus for movingand driving a robot arm, a position detector for detecting a position ofthe robot arm, a brake apparatus for maintaining a stationary attitudeof the robot arm, an unlocking switch for stopping servo control andunlocking the brake apparatus, and an auxiliary rotary switch forswitching whether or not the driving apparatus is rotated to move therobot arm at the time of a servo control stop by the unlocking switch,characterized in that it is constructed so that when a command from theunlocking switch is given and the auxiliary rotary switch is switched soas to move the robot arm, a movement speed is calculated based on aposition change amount and elapsed time from the position detector andis compared with an allowable movement speed specified previously andwhen the movement speed is larger, a brake is locked and when themovement speed is smaller, the brake is unlocked and also the drivingapparatus is moved by predetermined torque.
 4. A robot comprising: adriving apparatus for moving and driving a robot arm, a positiondetector for detecting a position of the robot arm, a brake apparatusfor maintaining a stationary attitude of the robot arm, and an unlockingswitch for stopping servo control and unlocking the brake apparatus, andan auxiliary rotary switch for switching whether or not the drivingapparatus is rotated to move the robot arm at the time of a servocontrol stop by the unlocking switch, characterized in that it isconstructed so that when a command from the unlocking switch is givenand the auxiliary rotary switch is switched so as to move the robot arm,a movement amount within a control program execution cycle is obtainedfrom a change amount of the position detector and is compared with anallowable movement amount specified previously and when the movementamount is larger, a brake is locked and when the movement amount issmaller, the brake is unlocked.
 5. A robot comprising: a drivingapparatus for moving and driving a robot arm, a position detector fordetecting a position of the robot arm, a brake apparatus for maintaininga stationary attitude of the robot arm, and an unlocking switch forstopping servo control and unlocking the brake apparatus, characterizedin that it is constructed so that when a command from the unlockingswitch is given, from a distance to a robot region preset and a movementspeed obtained by a position change amount and elapsed time from theposition detector, a movement speed in the robot region is calculatedand is compared with an allowable movement speed preset and when themovement speed is larger, a brake is locked and when the movement speedis smaller, the brake is unlocked.
 6. A robot comprising: a drivingapparatus for moving and driving a robot arm, a position detector fordetecting a position of the robot arm, a brake apparatus for maintaininga stationary attitude of the robot arm, and an unlocking switch forstopping servo control and unlocking the brake apparatus, characterizedin that it is constructed so that when a command from the unlockingswitch is given, from a distance to a robot region preset and a positionchange amount from the position detector within a control programexecution cycle, a movement amount in the robot region is calculated andis compared with an allowable movement amount preset and when themovement amount is larger, a brake is locked and when the movementamount is smaller, the brake is unlocked.
 7. A robot comprising: adriving apparatus for moving and driving a robot arm, a positiondetector for detecting a position of the robot arm, a brake apparatusfor maintaining a stationary attitude of the robot arm, and an unlockingswitch for stopping servo control and unlocking the brake apparatus,characterized in that it is constructed so that when a command from theunlocking switch is given, a movement speed of a work point of the armtop obtained by a present position, a position change amount and elapsedtime from the position detector indicating a length of the arm and itsattitude is compared with an allowable movement speed preset and whenthe movement speed is larger than the allowable movement speed, a brakeis locked and when the movement speed is smaller than the allowablemovement speed, the brake is unlocked.
 8. A robot as defined in any ofclaims 1, 3, 5 and 7, characterized in that it is constructed so that anupper limit value and a lower limit value are provided as the allowablemovement speed and when the movement speed is larger than the upperlimit value of the allowable movement speed, a brake is locked and whenthe movement speed is smaller than the lower limit value of theallowable movement speed, the brake is unlocked and when the movementspeed is between the upper limit value and the lower limit value of theallowable movement speed, processing of the previous time is continued.9. A robot comprising: a driving apparatus for moving and driving arobot arm, a position detector for detecting a position of the robotarm, a brake apparatus for maintaining a stationary attitude of therobot arm, and an unlocking switch for stopping servo control andunlocking the brake apparatus, characterized in that it is constructedso that when a command from the unlocking switch is given, a movementamount of a work point of the arm top obtained by a present position, aposition change amount and elapsed time from the position detectorindicating a length of the arm and its attitude is compared with anallowable movement amount preset and when the movement amount is largerthan the allowable movement amount, a brake is locked and when themovement amount is smaller than the allowable movement amount, the brakeis unlocked.
 10. A robot as defined in any of claims 2, 4, 6 and 9,characterized in that it is constructed so that an upper limit value anda lower limit value are provided as the allowable movement amount andwhen the movement amount is larger than the upper limit value of theallowable movement amount, a brake is locked and when the movementamount is smaller than the lower limit value of the allowable movementamount, the brake is unlocked and when the movement amount is betweenthe upper limit value and the lower limit value of the allowablemovement amount, processing of the previous time is continued.
 11. Arobot comprising: a driving apparatus for moving and driving a robotarm, a position detector for detecting a position of the robot arm, abrake apparatus for maintaining a stationary attitude of the robot arm,and an unlocking switch for stopping servo control and unlocking thebrake apparatus, characterized in that it is constructed so that brakeunlocking time and brake locking time according to a position and a loadcondition of the robot arm are previously stored and the brake unlockingtime and the brake locking time stored are read out of the presentposition and the preset load condition of the robot arm and a brake isunlocked based on the brake unlocking time read out and the brake islocked based on the brake locking time read out.